#xpath
#利用etree.HTML() 将html文件转换成element对象
#element对象调用xpath方法 /text() 获取文本值 /@属性值 获取对应属性值
from lxml import etree
import requests
from fake_useragent import UserAgent
url = "https://www.baidu.com/"
headers = {"User-Agent": UserAgent().random,}
res = requests.get(url, headers=headers, timeout=5)
html = etree.HTML(res.content.decode())
print(html)
text = html.xpath(r'//ul[@class="s-hotsearch-content"]/li/a/span[@class="title-content-title"]/text()')
print(text)
#python和数据库交互
#connect 方法
#host:主机
#user:用户
#passwd:密码
#db:数据库名
#port:端口号
#charset:字符集编码
#先创建一个字典写参数
import pymysql
db_config={
"host":"localhost",
"user":"root",
"passwd":"root",
"db":"baidu_test_list",
"port":3306
}
#建立连接对象 **将字典中的数据分别传参
conn = pymysql.connect(**db_config)
#创建游标对象 利用游标对象去操作
cur = conn.cursor()
#循环获取百度请求的列表中所有元素
for i in range(len(text)):
    #创建sql语句
    # sql = f"INSERT INTO news_title (id,content) VALUES ({i},'{text[i]}')" 添加
    sql = f"UPDATE news_title SET content = '{text[i]}' WHERE id = {i+1} "#修改
    #使用游标对象
    res = cur.execute(sql)
    if res > 0:
        print(f"执行成功: 已执行 {res} 条数据")
    else:
        print("执行失败")
    #提交数据
    conn.commit()
#关闭游标对象,关闭连接
cur.close()
conn.close()